
/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    ("「页面 JS」：当前页面地址 " + location.href);
}
export function unitTypeChange() {
    debugger
    const self = this;
    const typeIdToNameMap = {
        '1': '政府监督机关',
        '2': '政府监督机构',
        '3': '部门监督机关',
        '4': '部门监督机构',
        '5': '执法部门',
        '6': '执法主体',
        '7': '执法机构',
        '8': '受委托组织'
    };
    const selected = self.cValue;
    const selectedTypeNames = selected
        .map(id => typeIdToNameMap[id])
        .filter(Boolean); // 过滤掉无效映射
    updateFieldVisibilityByTypes(self, selectedTypeNames);
}

function updateFieldVisibilityByTypes(self, selectedTypes) {

    // 字段到组件 ID 映射
    const fieldComponentMap = {
        "统一社会信用代码": "cell_bo7uxg",
        "法定代表人": "cell_en4yk4",
        "部门层级": "cell_cvtzbg",
        "所属领域": "cell_e4fnf4",
        "垂管情况": "cell_8o5dl3",
        "垂管层级": "cell_cvo5qf",
        "垂管部门": "cell_4lvo3n",
        "编制人员": "cell_7mdjrf",
        "监督部门": "cell_28eww7",
        "是否公开": "cell_a35iem",
        "上级业务指导部门": "cell_8xh7dk",
        "成立日期": "cell_8l9l85",
        "设定依据": "cell_8qrs5e",
        "资格证": "cell_679g32",
        "监督机关信息": "grid_6dqujz",
        "监督机构信息": "grid_bgoik5",
        "执法部门信息": "grid_2gamph",
        "执法主体信息": "grid_h052o9",
        "执法机构信息": "grid_5h0b0v",
        "受委托组织": "grid_gwzaj0"
    };

    // 类型对应字段
    const orgFieldMap = {
        "政府监督机关": ["统一社会信用代码", "法定代表人", "部门层级", "成立日期", "监督机关信息"],
        "政府监督机构": ["统一社会信用代码", "法定代表人", "部门层级", "成立日期", "监督机构信息"],
        "部门监督机关": ["统一社会信用代码", "法定代表人", "部门层级", "成立日期", "监督机关信息"],
        "部门监督机构": ["统一社会信用代码", "法定代表人", "部门层级", "成立日期", "监督机构信息"],
        "执法部门": [
            "统一社会信用代码", "法定代表人", "部门层级", "成立日期",
            "所属领域", "垂管情况", "垂管层级", "垂管部门",
            "监督部门", "是否公开", "上级业务指导部门", "编制人员", "设定依据", "资格证", "执法部门信息"
        ],
        "执法主体": [
            "统一社会信用代码", "法定代表人", "主体层级", "成立日期",
            "所属执法部门", "所属领域", "垂管情况", "垂管层级", "垂管部门",
            "监督部门", "是否公开", "上级业务指导部门", "编制人员", "设定依据", "资格证", "执法主体信息"
        ],
        "执法机构": [
            "统一社会信用代码", "法定代表人", "机构层级", "成立日期",
            "所属领域", "垂管情况", "垂管层级", "垂管部门",
            "监督部门", "是否公开", "上级业务指导部门", "编制人员", "设定依据", "资格证", "执法机构信息"
        ],
        "受委托组织": [
            "统一社会信用代码", "法定代表人", "成立日期",
            "委托主体", "委托方式", "委托期限", "受委托组织"
        ]
    };

    const visibleFields = Array.from(
        new Set(selectedTypes.flatMap(type => orgFieldMap[type] || []))
    );

    Object.entries(fieldComponentMap).forEach(([fieldName, compId]) => {
        if (!compId) return;
        const isVisible = visibleFields.includes(fieldName);
        const behavior = isVisible ? '' : 'none';
        self.$$(compId).$el.style.display = behavior;
    });
}
